In many different computer environments, there is often a need for one software application to be able to call external functions that are not part of the software application. In many programming languages, such as the C programming language, there are groups of functions that can be called by any number of different software applications. One example programming language is the C programming language.
In the C programming language, the callable functions have C header files that describe the content of the function, and what information is required to call and execute the function. More specifically, C header files are files that are included in other files prior to compilation by the C preprocessor. Header files can be in the form of system header files, which declare the interfaces to parts of the operating system. The system header files most often contain information such as definitions and declarations that are needed in order to call or invoke the system calls and libraries. Header files can also be in the form of program specific files, which contain declarations for interfaces between the source files of the program. Header files also contain data declarations and definitions utilized by more than one program. A header file can contain information for one or more functions, modules, or libraries.
In interactive programming environments, there is often a need for the interactive programming environment to interact with existing components and applications from third parties. There are a number of different approaches utilized to enable such functionality. In accordance with one method, a custom interface is created to allow the high level language (HLL) of the interactive environment to call into a shared library. Doing so requires all users to build their own custom interface to call into existing code.
In accordance with another example method, an existing portable component interface is utilized. The component must be written to be compliant with the given interface. For example, Microsoft Corporation's Component Object Model (COM), and the Object Management Group's Common Object Request Broker Architecture (CORBA) provide such interfaces.
A third example method is to create a way for the user to define the interfaces present in a shared library that was designed to be called from a standard programming language, such as the C programming language. A special document or library definition custom to the application must be created by the user (or additionally provided) that defines the interface to the library. There is no mechanism for automatically creating the special document, the custom library definition, or any form of library function interface that defines the interface to the library.